import axios from 'axios'
import router from '../router'
let http = axios.create({
    timeout: 10000,
    baseURL: '/api'
})

// 每一次请求前要干的事情
http.interceptors.request.use(req => {
        let token = sessionStorage.getItem('token')
            // token有值进只是req.headers
        token && (req.headers['Authorization'] = `Bearer ${token}`)
            // console.log(token)
        return req
    })
    // 响应回来要干的事情
http.interceptors.response.use(resp => {
    // 根据响应回来的得数据设置token
    // resp.data.token需要根据后端返回的数据设置
    resp.data.token && sessionStorage.setItem('token', resp.data.token)
    return resp
}, error => {
    let _resp = error.response
        // 需要后端返回status。本次项目就登录返回了。报未定义不用管
    switch (_resp.status) {
        case 401:
            sessionStorage.removeItem('token')
            sessionStorage.removeItem('user')
            alert('身份已经过期,请重新登录')
            return router.push('/login')
        case 500:
            alert('服务器报错')
    }
    return Promise.reject(error.response.data)
})


export default http